As technology advances in the semiconductor field, devices such as processors incorporate ever-increasing amounts of circuitry. Over time, processor designs have evolved from a collection of independent integrated circuits (ICs), to a single integrated circuit, to multicore processors that include multiple processor cores within a single IC package. As time goes on, ever greater numbers of cores and related circuitry are being incorporated into processors and other semiconductors.
Multicore processors are being extended to include additional functionality by incorporation of other functional units within the processor. One issue that arises is that the different circuitry can consume differing amounts of power based on their workloads. However, suitable mechanisms to ensure that these different units have sufficient power do not presently exist.
For example, a processor including different compute elements limits the amount of total power consumed to a level called the thermal design power (TDP) limit. In addition to a configured TDP limit for a processor, an original equipment manufacturer (OEM) may limit the TDP of the processor even lower, to enable longer battery life, for different form factors, etc. When running power hungry workloads on these systems, the available power (up to the TDP limit) is split between different compute elements. The manner in which the power is split affects performance of the system. The current approach to this power distribution problem is to use a fixed ratio for all workloads and TDPs, meaning that a certain portion of the power is allocated to the different units of the processor. However, this approach is not optimal for all workloads.